﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ebc.compiler {
using System.Collections.Generic;
using ebcpatterns.flow;
using data.contracts;
using data.contracts.messages;
using contracts.projects;
using contracts.model;
using contracts.generation;
public interface IMainboard {
  void Run(string message);
}
public partial class Mainboard : IMainboard {

  private Action<string> _Run;
  public void Run(string message) {
    _Run(message);
  }
  public Mainboard(IGetEbcXmlFilenames getEbcXmlFilenames, IDefaultNamespace defaultNamespace, modelbuilder.ModelBuilder modelBuilder, IGetGeneratedEbcCsFilename getGeneratedEbcCsFilename, IGenerator generator, IJoin<string,string,SaveMessage> join2, IFileAdapter fileAdapter) {
  var __join1 = new Join<IEnumerable<string>,string,BuildBoardsMessage>();    this._Run += getEbcXmlFilenames.Process;
    this._Run += defaultNamespace.Process;
    this._Run += getGeneratedEbcCsFilename.Process;
    getEbcXmlFilenames.Result += __join1.Input1;
    defaultNamespace.Result += __join1.Input2;
    __join1.Output += modelBuilder.Process;
    modelBuilder.Result += generator.Process;
    getGeneratedEbcCsFilename.Result += join2.Input1;
    generator.Result += join2.Input2;
    join2.Output += fileAdapter.Process;
  }
}

}
